Sistema de Nombrado en Java (JNDI) [Parte I]

La lecci�n �Qu� es un nombre? explica en detalle c�mo usar un nombre mixto para expresar un nombre que expande varios sistemas de nombrado. Esta secci�n explica c�mo un proveedor de servicio determina qu� componentes del nombre mixto procesar y c�ales pasar.

En efecto, el proveedor de servicios necesita determinar el l�mite del sistema de nombres que separa unos componentes de sus vecinos (aguasabajo).

.�Separaci�n Fuerte y D�bil

El ejemplo de la lecci�n �Qu� es un nombre? tiene el siguiente nombre mixto.

cn=homedir,cn=Jon Ruiz,ou=People/tutorial/report.txt

Este nombre mixto tiene tres componentes.

cn=homedir,cn=Jon Ruiz,ou=People
tutorial
report.txt

El primer componente pertence al sistema de nombres LDAP, y el segundo pertenece al sistema de ficheros (UNIX). Como se ve en este ejemplo, un nombe mixto puede tener varios componentes (posiblemente consecutivos) del mismo sistema de nombres ("tutorial" y "report.txt" son del sistema del ficheros), pero un componente no puede expandir m�s de un sistema de nombres. Por eso, la correspondencia entre el separador de componentes de nombres mixtos -- barra inclinada (/)--y los l�mites del sistema de nombres podr�a ser uno-a-uno.

En esta lecci�n, los proveedores de servicios se dividen en los que tratan el separador de componentes de nombres mixtos como un l�mite del sistema de nombres y los que no. Aquellos que soportan separaci�n fuerte, y aquellos que soportan separaci�n d�bil.

  • Un proveedor que soporta separaci�n fuerte procesa un nombre mixto consumiendo el componente inicial del nombre y dejando el resto de los componentes para otro sistema de nombres.
  • Un proveedor que soporta separaci�n d�bil no trata necesariamente al separador como un l�mite de sistema de nombres. Cuando procesa un nombre compuesto, consume tantos componentes iniciales como sea apropiado para el sistema de nombres subyacente.

El principal factor para determinar si un proveedor soporta separaci�n fuerte o d�bil es la s�ntaxis del sistema de nombres subyacente. Si este sistema tiene un espacio de nombres plano o un espacio de nombres jer�rquico con un separador de nombres compuesto que no tiene conflictos con el separador de nombres mixtos, entones el correspondiente proveedor de servicios soportar� separaci�n fuerte. De otra forma, el proveedor soporar� separaci�n d�bil.

Por supuesto, puede resolver este conflicto de s�ntaxis y soportar separaci�n fuerte requiriendo que cualquier separador de nombre compuesto est� escapado o entrecomillado. Este requerimiento podr�a ser un incoveniente para los usuarios de ese proveedor pero podr�a ser la �nica forma de que algunos proveedores soporten la federaci�n.

Entero los proveedores de servicios que soportan separaci�n fuerte se incluyen el LDAP, el sistema de ficheros Windows y el registro RMI. El sistema de nombres LDAP es jer�rquico y tiene el caracter coma (",") como separador de componentes de nombres compuestos. El sistema de ficheros Windows tambi�n es jer�rquico y tiene el caracter de barra invertida ("\") como separador. Ninguno de estos separadores tiene conflictos con el separador de componentes de nombres mixtos. El espacio de nombres RMI es un espacio plano.

Los proveedores de servicios que soportan separaci�n d�bil incluyen el sistema de nombres COS y el sistema de ficheros UNIX.

.�Condiciones para Soportar Separaci�n D�bil

La separaci�n d�bil es conveniente porque hace que los nombres mixtos parezcan claros (se requieren menos escapes o comillas). Tambi�n permite al usuario ser menos consciente de los l�mites del sistema de nombres. Sin embargo, no todos los proveedores de servicios pueden soportar separaci�n d�bil. Ciertas restricciones podr�an forzar a un proveedor a soportar la separaci�n fuerte.

Por ejemplo, si la s�ntaxis del espacio de nombres es jer�rquica y usa el caracter de la barra inclinada ("/") como separador pero su nombres se leen de derecha a izquierda, entonces el proveedor no puede usar la separaci�n d�bil. Esto es porque el conflicto de direcci�n evita cualquier determinaci�n sensible de los l�mites del sistema de nombres.

El sistema de nombres es un terminal (los componentes de ese sistema de nombres s�lo pueden aparecer al final de un nombre mixto), entonces el proveedor de servicio puede soportar la separaci�n d�bil. Por ejemplo, supongamos que un espacio de nombres de una aplicaci�n de hoja de c�lculo tiene una s�ntaxis de izquierda-a-derecha y usa la barra inclinada como separador de componentes. Supongamos tambi�n que los nombres de las celdas de la hoja de c�lculo siempre ser�n terminales; es decir, cosas que no ser�n nombradas en relaci�n a la celda de la hoja de c�lculo. En este caso, el proveedor de servicios para el sistema de nombrados de la hoja de c�lculo puede soportar la separaci�n d�bil. Dandole un nombre mixto, consumir� todos sus componentes.

Si el sistema de nombres no es terminal pero el proveedor de servicios puede determinar sint�cticamente el l�mite del sistema de nombres, entonces puede soportar separaci�n d�bil. En este caso, el proveedor de servicio usar�a una regla sint�ctica para determinar cu�ntos componentes de un nombre mixto consumir. Por ejemplo, los componentes de un nombre compuesto podr�an tener una caracter�sitca distintiva que permita al proveedor seleccionar los componentes.

Como ejemplo espec�fico, un nombre DCE X.500 se parece a esto.

c=us/o=wiz/ou=people

Un proveedor para este sistema de nombres puede soportar separaci�n d�bil buscando los componentes que tienen parejas clave/valor separadas por caracteres de igual ("="). Sin embargo, restringir� los tipos de sistemas de nombres que se pueden federar directamente con este sistema de nombres. En el ejemplo anterior, un sistema de nombres que tenga nombres que consisten en parejas clave/valor separadas por caracteres de igual no puede estar federado.

Si el sistema de nombres no es terminal pero el proveedor de servicios puede determinar din�micamente los l�mites del sistema de nombres, puede soportar separaci�n d�bil. El sistema de nombres subyacente debe poder devolver los nombres de los componentes residuales sin resolver. Para determinar qu� componentes consumir, el proveedor resolver� el nombre mixto completo y, bas�ndose en la resoluci�n, usar� cualquier residuo para determinar qu� no es un sistema de nombres.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO